home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 4: GNU Archives / Linux Cubed Series 4 - GNU Archives.iso / gnu / gnu-objc.0 / gnu-objc / objc-and-c++ < prev    next >
Encoding:
Internet Message Format  |  1993-03-01  |  41.3 KB

  1. From: MKK2@psuvm.psu.edu
  2. Date:    Wed, 26 Aug 92 17:42 EDT
  3. To: gsk@world.std.com
  4. Subject: Re: Objective C library, Free Software Foundation
  5.  
  6. One thought I've had about ObjC class libraries:  What about taking C++
  7. libraries and putting ObjC wrappers on them?  Of course, this would be a trifle
  8. less efficient than writing pure ObjC libraries, but it also has some
  9. advantages:
  10.  
  11. 1.  It might be quicker.  Why reeinvent the wheel?
  12. 2.  With some experience, it might be automatable.  That is, a tool could
  13. be built that reads C++ classes, and spits out ObjC versions, probably with
  14. flags on parts that aren't easily convertible (e.g., multiple inheritance).
  15. 3.  People who need to port between C++ and ObjC platforms would have easier
  16. times of it.
  17.  
  18. Disclaimer:  I know *nothing*!
  19.  
  20. From: martin@charon.neuroinformatik.ruhr-uni-bochum.de (Martin Lades)
  21. Date: Thu, 3 Sep 92 00:17:38 +0200
  22. To: gsk@marble.com
  23. Subject: Re: GNU Objective-C Project Has Begun
  24.  
  25. Hello Geoffrey,
  26.  
  27. since I am using the mixed Objective-C/C++ approach,
  28. I would be very interested in plans/progress/work assignment chunks
  29. concerning the point of the communication between
  30. the objective-C library and libg++.
  31. At least the side concerning libg++ is affecting me heavily at this point.
  32.  
  33. Are there any schedules yet and distributed responsibilities?
  34. Is there code to be used for some kind of interlaced compiler or
  35. is the interaction going on on object basis?
  36.  
  37. Thanks for a reply.
  38.  
  39. Martin Lades
  40. martin@neuroinformatik.ruhr-uni-bochum.de
  41.  
  42. From: martin@charon.neuroinformatik.ruhr-uni-bochum.de (Martin Lades)
  43. Date: Thu, 3 Sep 92 00:36:00 +0200
  44. To: gsk@marble.com
  45. Subject: Re: GNU Objective-C Project Has Begun
  46.  
  47. Geoffrey,
  48.  
  49. Could you please put me on the mailing list?
  50. (martin@neuroinformatik.ruhr-uni-bochum.de)
  51.  
  52. I use libg++ exactly for the usefulness you mentioned.
  53. I also use another C++ lib called LEDA for efficient graph implementation.
  54. The third thing is using NeXTstep for display purposes.
  55. The interaction was pretty neat, concerning, that I could send C++ classes/objects
  56. around with objective-C calls!
  57. The whole package does Object recognition with DSP for feature extraction/convolution
  58. stuff and an elastic matching/neural net approach for the recognition back end
  59. for research purposes.
  60.  
  61. Distributed Objects on the other side like NeXT has them now should be much easier
  62. in Objective-C. Was there discussion about this point also?
  63.  
  64. But the mixed approach depends a lot on what your compiler can do!
  65. I just sent a mail this afternoon to next-prog concerning NeXTs broken cc++ compiler.
  66.  
  67.  
  68. Later,
  69.  
  70. Martin
  71.  
  72. From: Steve_Naroff@next.com (Steve Naroff)
  73. Date: Tue, 8 Sep 92 14:06:18 -0700
  74. To: gsk@gnu.ai.mit.edu
  75. Subject: Re: development priorities, beta testing
  76. Cc: snaroff@next.com
  77.  
  78.  
  79. > If we can make Objective-C and C++ operate together, we can leverage off of things like libg++ and Interviews, which already exist as free software.
  80.  
  81. We have done this...it has been shipping since NeXTSTEP version 2.0. Our goal was to allow developers with an existing base of C++ code to use it with NeXTSTEP's Objective-C based kits/tools. The problem we have had is keeping up with the rapidly changing (and often buggy) g++ compiler, given the limited resources we place on C++ at NeXT. Is this product what you mean when you say "operate together"? Nevertheless, we recently finished merging the latest version of Objective-C with the g++ in GCC version 2.2.2.  I hope this work can be reused!
  82.  
  83. snaroff.
  84.  
  85. From: Steve_Naroff@next.com (Steve Naroff)
  86. Date: Tue, 8 Sep 92 16:19:16 -0700
  87. To: gsk@marble.com
  88. Subject: Re: C++ and Objective-C; coding from interface specs
  89. Cc: snaroff@next.com
  90. Status: RO
  91.  
  92.  
  93. > What people want is to message C++ from Objective-C, and vice versa. Is this what your changes do?
  94.  
  95. Yes. Simply stated, it replaces the ANSI-C layer with C++. Since Objective-C tries hard to "stay out of C's way", this works out quite nicely. See /NextDeveloper/Examples/AppKit/CalculatorLab++ if you are interested in a small example of what I am talking about.
  96.  
  97. > If NeXT is making life easier for C++ programmers, a lot of people will be pleased.  I remember that at NeXTWORLD Expo, the attitude was, paraphrasing, "we've put C++ support in there, but we haven't made it very easy, because basically we don't think people should be wasting their time with C++."  I remember thinking that I too did not care much for C++, however those who did would interpret such remarks as "NeXT is being arrogant again, they love to go their own way.
  98.  
  99. We did this to make life easier for folks who already have an investment in C++. We are not religious about "C++ vs. Objective-C"...we would like the 2 languages to coexist as much as possible. C++ is, however a 2nd class citizen in NeXTSTEP...given our heritage, limited resources, and the complexity of C++, we continue to focus on support for Objective-C. If we were being "arrogant", we would not have ported g++ and merged it with Objective-C. Oh well...I guess people love to throw stones!.
  100.  
  101. On the legal side, I believe re-engineering a class (from an interface spec) is kosher...in fact, we (i.e. NeXT) would like the FSF runtime to be modeled after our API, so that port headbutts are minimized. For example, objc_getClass("NXFoobar") will hopefully exist...I would hope the name and type signitures for common runtime hooks are maintained. I will verify this with NeXT lawyers.
  102.  
  103. snaroff.
  104.  
  105. From: Steve_Naroff@next.com (Steve Naroff)
  106. Date: Wed, 9 Sep 92 13:56:59 -0700
  107. To: jr@alpo.media.com (J.R. Jesson)
  108. Subject: Re: Your mission, should you choose to accept it. . .
  109. Cc: gnu-objc@prep.ai.mit.edu, m@crito.stanford.edu (M Carling),
  110.         mwagner@next.com
  111.  
  112.  
  113. We released the source prior to shipping NeXTSTEP 3.0, a vast improvement over release 2.0 (thanks to M Carling at BaNG).
  114.  
  115. The compiler is based on GCC 1.93, the debugger is based on gdb 3.95.
  116.  
  117. We have integrated our latest version of Objective-C (with protocol support) with GCC 2.2.2...this is close to what we will ship with NeXTSTEP 486.
  118.  
  119. NeXT is happy to provide these mods so that they can be integrated into the GNU source tree.
  120.  
  121. snaroff.
  122.  
  123. From: Steve_Naroff@next.com (Steve Naroff)
  124. Date: Wed, 9 Sep 92 15:27:08 -0700
  125. To: gnu-objc@prep.ai.mit.edu
  126. Subject: Re: Your mission, should you choose to accept it. . .
  127.  
  128.  
  129. Here are some brief answers to questions raised in response to my previous email...
  130.  
  131. > Where are the modifications?
  132.  
  133. The mods are in the NeXT source tree...I would like to hand this work off to the appropriate person asap. This person (to be named by Geoffrey S. Knauth) would be responsible for integrating this work into the FSF source tree...we could help if problems arise. Objective-C++ support has been integrated as well.
  134.  
  135. > When and where can I get the integrated version?
  136.  
  137. >From FSF, once the previous work is complete...this should happen before we ship NeXTSTEP 486. Once the 486 product ships, you can get an updated version of the BaNG source disk from NeXT.
  138.  
  139. > Does this mean that NeXTStep '486 will ship with a compiler based on GCC 2.2.2?  How about the debugger? 
  140.  
  141. NeXTSTEP 486 wil ship with GCC 2.2.2 (or later, depending on our schedule and the quality of GCC 2.2.2). We have no plans to upgrade the debugger at this time.
  142.  
  143. > If so, will an update to 3.0 be released at the same time?
  144.  
  145. The GNU sources will be released coincident with NeXTSTEP 486.
  146.  
  147. > Do you know anything about the Music Kit release? 
  148.  
  149. The Music Kit is unbundled in Release 3.0...see the release notes for more info.
  150.  
  151. > Will the GNU source and Music Kit stuff be available for FTP from
  152. Next?
  153.  
  154. Not that I am aware of...
  155.  
  156. snaroff.
  157.  
  158. From: athan@object.com (Andrew Athan)
  159. To: gnu-objc@prep.ai.mit.edu
  160. Subject: C++ wrappers
  161.  
  162.  
  163. One problem with wrapping C++ is taking care of the semantics (constructor/destructor, method parameter polymorphism, etc.)
  164.  
  165. Efficiency is less of a problem.  Even the simplest wrappers
  166.  
  167. @implementation FooWrapper
  168. {
  169.   Foo f;
  170. }
  171.  
  172. - objcFooMethod:(int)x
  173. {
  174.   f.method(x);
  175. }
  176. @end
  177.  
  178. etc.  are still only going to be 1 method call more time consuming than using the C++ object as is and only 1 function call more time consuming than using a straight objc class.   One can also build an objc Class object using the runtime functions for the C++ class where the extra function call time would be completely avoided (though the runtime would have to be able to avoid passing the SEL hidden parameter).
  179.  
  180. Just to play devil's advocate:  Can someone justify for me the need to do this at all, since one of the goals is the ability to call C++ as part of objective-C code.  Yes, one has to learn yet-another-syntax, but ...
  181.  
  182. Andrew Athan
  183.  
  184.  
  185.  
  186. From: martin@charon.neuroinformatik.ruhr-uni-bochum.de (Martin Lades)
  187. Date: Thu, 10 Sep 92 18:25:53 +0200
  188. To: gsk@marble.com
  189. Subject: gcc-2.2.2 based -Objective-C++ Compiler
  190.  
  191. Hello
  192.  
  193. Since that could/should be the base for all development with mixed
  194. Objective-C and C++ (it is pretty complete with templates, iostreams
  195. and only the new NeXT stuff is missing)
  196. the compiler would be priority one in the list of necessary developments.
  197. As the guy from NeXT also stated, he wants to hand it off ASAP.
  198. Who is involved? What happens?
  199. Is there a schedule yet? How much work is involved?
  200. What is the partitioning?
  201.  
  202.  
  203. Thanks,
  204.  
  205. Martin
  206.  
  207. From: Steve_Naroff@next.com (Steve Naroff)
  208. Date: Thu, 10 Sep 92 17:06:59 -0700
  209. To: rms@gnu.ai.mit.edu (Richard Stallman)
  210. Subject: Re: gnu-objc (Herring, Stroustrup, Novobilski)
  211. Cc: gsk@marble.com, snaroff@next.com
  212.  
  213.  
  214. Thanks...I couldn't agree more. btw, the Objective-C++ work we did is very straightforward...the goal is to enable programmers to use objects developed in both languages within the same source module (without cumbersome "wrappers"). The philosophy is simple, C++ should be as convenient to use from Objective-C as ANSI-C is. This makes it really easy to use C++ libraries from Objective-C, which is an important goal. For example, C++ objects can be "a-part-of" (i.e. reference) Objective-C objects (and vice-versa). However C++ objects can NOT inherit from Objective-C objects (and vice-versa)...I thought this was strange, hard to solve, and not so useful.
  215.  
  216. Since both languages have very different goals (C++ a "better C"...Objective-C a "thin Smalltalk veneer"), there were very few syntactic or semantic ambiquities. Both languages retain their native syntax/semantics and performance characteristics. You could imagine unifying the object models, however we made no attempt to do this (it wasn't clear that this was a worthwhile goal).
  217.  
  218. snaroff.
  219.  
  220. Date: Sat, 12 Sep 92 05:56:49 EDT
  221. From: jjobe@mrj.com (jason jobe)
  222. To: gnu-objc@prep.ai.mit.edu
  223. Subject: Objc++
  224.  
  225. As indicated in previous mail one of the objectives is to make it easy to
  226. work with both ObjC and C++.  In line with that:
  227.  
  228. 1) Some talk about ObjC class wrappers for C++ Classes. Is the real goal
  229.    to be able to use the same method calling syntax for both? ie given
  230.    a C++ construct "foo->draw (myCanvas);" should "[foo draw:myCanvas];"
  231.    be permitted/encouraged/supported. If so, is it a straight translation or
  232.    do we have some different dispatcher for C++ methods calls or something.
  233.  
  234. 2) Does one want more runtime info about C++ classes? If so, what?
  235.    I seem to recall  something along these lines discussed in the context 
  236.    of InterViews (from Stanford).
  237.  
  238. I also have some other questions/comments:
  239.  
  240. 1) If protocols use versions (a good idea) could one cleanly indicate
  241.    compatabilty between different versions? For example,
  242.  
  243.     @protocol <Foo1>
  244.     - draw;
  245.     - erase;
  246.     @end
  247. and
  248.     @protocol <Foo2>
  249.     - draw;
  250.     - erase;
  251.     - cache;
  252.     @end
  253. Can Foo2 subsume Foo1? If I conformTo Foo2 then I also conformTo Foo1. Should
  254. this be ok?
  255.  
  256. 2) Can/will dynamically loadable objects be supported on other platforms?
  257.  
  258. 3) What about some standard way resolve name space conflicts between
  259.    lib sets? Say I have 3 different "List" classes, how can I mix and match?
  260.    Do I, as a lib builder always have to prepend my intiails or something
  261.    ridiculous like that? InterViews had some work around but this seems worth
  262.    supporting.
  263.  
  264.  
  265. I rather like the idea of ObjC++.  This should be fun.
  266.  
  267. Jason
  268.  
  269. Date:    Fri, 28 Aug 92 10:44 EDT
  270. From: <MKK2@psuvm.psu.edu>
  271. Subject: Re: objc wrappers about c++
  272. To: gsk@marble.com
  273.  
  274. I didn't mean that wrappers around C++ was the ideal approach.  I meant
  275. that it might be a good initial step.  1.  create the wrappers.  This gets
  276. people something they can use.  2a.  Rewrite the most often used ones
  277. in ObjC.  2b.  Create a tool that will take a C++ class an automagically
  278. create a wrapper for it.  3.  Based on 2a, create a tool that translates
  279. C++ into ObjC.
  280.  
  281. You can start with 2a, instead, but it'll be a much longer wait before
  282. something comes out.
  283.  
  284. just thinking...
  285.  
  286. Date: Tue, 29 Sep 92 09:29:33 CDT
  287. From: shirley@gothamcity.jsc.nasa.gov (Bill Shirley [CSC])
  288. To: gnu-objc@prep.ai.mit.edu
  289. Subject: Re: Objective-C + C++ -> ObjC++
  290.  
  291. |> From: jjobe@mrj.com (jason jobe)
  292. |> 
  293. |> Volunteers needed.
  294. |> To recap:
  295. |> 
  296. |> COMMUNICATIONS BETWEEN OBJECTIVE-C AND C++
  297. |> 
  298. |> Make the Objective-C library and libg++ help each other;
  299. |> investigate language enhancements to make this easy.
  300.  
  301. First off I know Objective-C (and of course C) much better than C++
  302. (read the following accordingly)
  303.  
  304. |> 
  305. |> As the ObjC++ manager I thought throw out some ideas of my own.
  306. |> (Please beware of my own NeXT bias)
  307. |> 
  308. |> To me this suggest several things:
  309. |> 
  310. |> 1 ) We want to make it easy to  equate Objc and C++ class structures.
  311.                    ~~~~~~
  312. Do you mean the internal representation of the classes?
  313.  
  314. |> 
  315. |> 2)  We clearly need more info on C++ classes at runtime. 
  316.  
  317. clearly
  318.  
  319. |> I seem to recall  
  320. |> some sort of "dossier" being suggested in the context of Stanford's
  321. |> InterViews (anybody know about this?).
  322.  
  323. I read the thesis on Interviews and tried to learn how to use it once.
  324. The thesis said that C++ had constrained some of it's design decisions
  325. and that they had to work around C++ limitations to implement it as such.
  326. There decision (on language) was based solely on availability.  (If ObjC
  327. had been widely available (ala gcc) at the time, I can only think they
  328. would have made a better product.)
  329.  
  330. The thesis even suggested future work with a language w/o the limitations.
  331. Maybe someone at Stanford wants to reimplement it in ObjC?  Prob'ly not.
  332.  
  333.  *personal opinion*
  334. (Knowing Xlib, Xt, and NeXTSTEP)
  335. I found Interviews obtuse and contrived, even the simplest programs were
  336. difficult to make run.  Most of the examples they included with the
  337. release would randomly dump core, with no explanation.  I don't know
  338. if I was working with an earlier flawwed product or if it has improved.
  339.  
  340. |> 3) Perhaps one should encourage consistent message syntax.
  341. |>      Can/should  "[graphic draw]" be equivalent to "graphic->draw()" ?
  342. |>     If so, what about "[canvas draw:graphic at:point]" vs. 
  343. |>     "canvas->drawAt (graphic, point)"
  344.  
  345. maybe the maping would be easier and straightforward if it was similar to:
  346.  
  347. canvas->drawAt (graphic, point)  ==> [canvas drawAt: graphic  :point];
  348.  
  349. that's not as simple to read, but then you should have defined it as an ObjC
  350. class, if you wanted that.
  351.  
  352. |> 4)  Routing C++ method calls through an Objc-like dispatcher WHEN DESIRED.
  353.  
  354. Sounds good to me.  How would you denote when to dispatch or not.
  355.  
  356. |> Other Questions/Issues raised:
  357. |> 
  358. |> 1)  How should operator overloading be applied to Objc classes?
  359.  
  360.   a)  answer = [array operator+: another];  ?
  361.     I think this should be (close to) the internal representation
  362.     whether we allow the syntactic sugar of
  363.  
  364.   b)  answer = array + another;
  365.     is another question.
  366.   
  367.  
  368. |> 2)  Are we going to add the static object instantiation that NeXT left out?
  369.  
  370. If you want a Cpp2ObjC "processor" then this will be needed. (I think)
  371.  
  372. |> 3)  Should we try to provide method name overloading
  373. |>   (based on argument types)  for Objc methods?
  374.  
  375. Hmm, that would be interesting.
  376.  
  377. |> 
  378. |> 
  379. |> Hopefully this will get the ball rolling.
  380.  
  381. roll, roll
  382.  
  383. |> 
  384. |> Jason
  385. |> jjobe@mrj.com
  386. |> GNU Objc ObjC++ Manager
  387. |> 
  388.  
  389.  
  390.  Bill Shirley
  391.  shirley@fdr.jsc.nasa.gov
  392.  
  393. Date: Mon, 28 Sep 92 23:14:05 EDT
  394. From: jjobe@mrj.com (jason jobe)
  395. To: gnu-objc@prep.ai.mit.edu
  396. Subject: Objective-C + C++ -> ObjC++
  397.  
  398. Jason queries:
  399.  
  400. [ stuff deleted ]
  401.  
  402. > 1)  How should operator overloading be applied to Objc classes?
  403.  
  404.     IMHO, this is not an extraordinary added value.  I would say, just make sure that overloaded operators continue to work in a C++ context, but don't support them for Objective-C objects.
  405.     
  406. > 2)  Are we going to add the static object instantiation that NeXT left out?
  407.  
  408.     PLEASE!  More specifically, _automatic_ object instantiation, so that I can declare an object at the top of my method/function and have it automagically freed when I return from my method/function.
  409.     I WOULD CALL THIS A HUGE WIN.
  410.     
  411. > 3)  Should we try to provide method name overloading (based on argument
  412. > types) for Objc methods?
  413.  
  414.     Absolutely.  To tell you the truth, _I_ might only use it once in a blue moon, but its availability doesn't get in my way (if my style dictates no overloading, I just won't write overloaded methods).  Maybe have a special syntax for declaring overloadable parameters and return values?  I'm putting on my asbestos suit now . . . .  8')
  415.  
  416.  
  417.     Ta-ta,
  418.     - Kurt
  419.  
  420. Kurt Starsinic                  #   kstar@medequity.com
  421. Director of Systems             #     (NeXTmail preferred)
  422. MedEquity, Inc.                 #
  423. 555 North Lane, Suite 6183      #     (215) 397-0201 voice
  424. Conshohocken, PA  19428         #           397-0203 fax
  425.  
  426. The opinions expressed by me just might be those of MedEquity, Inc.
  427.  
  428.    "There is nothing in the world that will take
  429.     the chip off one's shoulder like a feeling of success."
  430.        - Thomas Wolfe
  431.  
  432. Date: Mon, 28 Sep 92 23:14:05 EDT
  433. From: jjobe@mrj.com (jason jobe)
  434. To: gnu-objc@prep.ai.mit.edu
  435. Subject: Objective-C + C++ -> ObjC++
  436.  
  437. Volunteers needed.
  438. To recap:
  439.  
  440. COMMUNICATIONS BETWEEN OBJECTIVE-C AND C++
  441.  
  442. Make the Objective-C library and libg++ help each other;
  443. investigate language enhancements to make this easy.
  444.  
  445. As the ObjC++ manager I thought throw out some ideas of my own.
  446. (Please beware of my own NeXT bias)
  447.  
  448. To me this suggest several things:
  449.  
  450. 1 ) We want to make it easy to  equate Objc and C++ class structures.
  451.  
  452. 2)  We clearly need more info on C++ classes at runtime.  I seem to recall  
  453. some sort of "dossier" being suggested in the context of Stanford's InterViews
  454. (anybody know about this?).
  455.  
  456. 3) Perhaps one should encourage consistent message syntax.
  457.      Can/should  "[graphic draw]" be equivalent to "graphic->draw()" ?
  458.     If so, what about "[canvas draw:graphic at:point]" vs. 
  459.     "canvas->drawAt (graphic, point)"
  460.  
  461. 4)  Routing C++ method calls through an Objc-like dispatcher WHEN DESIRED.
  462.  
  463. Other Questions/Issues raised:
  464.  
  465. 1)  How should operator overloading be applied to Objc classes?
  466. 2)  Are we going to add the static object instantiation that NeXT left out?
  467. 3)  Should we try to provide method name overloading (based on argument types)
  468.  for Objc methods?
  469.  
  470.  
  471. Hopefully this will get the ball rolling.
  472.  
  473. Jason
  474. jjobe@mrj.com
  475. GNU Objc ObjC++ Manager
  476.  
  477.  
  478. From: Geoffrey S. Knauth <gsk>
  479. Date: Tue, 29 Sep 92 11:28:22 -0400
  480. To: gsk
  481. Subject: [MKK2@psuvm.psu.edu: Re: Objective-C + C++ -> ObjC++]
  482.  
  483. Return-Path: <MKK2@psuvm.psu.edu>
  484. From: MKK2@psuvm.psu.edu
  485. Date:    Tue, 29 Sep 92 02:07 EDT
  486. Subject: Re: Objective-C + C++ -> ObjC++
  487. To: jjobe@mrj.com
  488. Cc: gnu-objc@prep.ai.mit.edu
  489. In-Reply-To:  jjobe AT mrj.com   -- Mon, 28 Sep 92 23:14:05 EDT
  490.  
  491.  
  492. >1 ) We want to make it easy to  equate Objc and C++ class structures.
  493.  
  494. One way to do this is to automate the process.  If one has C++ classes, but
  495. wants to live in an Obj-C world, there should be a filter that reads the
  496. C++ interface and outputs an Obj-C wrapper for it.  Pascal to C exists,
  497. why not C++ to Obj-C and vice versa?  (It's easy for me to suggest this
  498. because I have absolutely no qualifications to actually do it 8-) 8-)
  499.  
  500. >3)  Should we try to provide method name overloading (based on argument types)
  501. > for Objc methods?
  502.  
  503. The math major lurking in my youth has always regretted this design decision
  504. of Objective-C.  Surely, a function is both a name *and* a domain *and* a
  505. range.  So I vote YES to name overloading based on argument and return value
  506. types.  Again, I'm safe from ever being asked to implement this, at least by
  507. people who actually want to see it done.
  508.  
  509. However, I don't think extending the language is our real mission here.
  510. Working implementation first, redesign the language later.
  511.  
  512. >Hopefully this will get the ball rolling.
  513.  
  514. >Jason
  515. >jjobe@mrj.com
  516. >GNU Objc ObjC++ Manager
  517.  
  518.  
  519. Date: Tue, 29 Sep 92 11:03:01 -0500
  520. From: Gregory B. Lampshire <gbol@geol.vt.edu>
  521. To: gnu-objc@prep.ai.mit.edu
  522. Subject: Re: Objective-C + C++ -> ObjC++
  523. Reply-To: gbol@rglnext.geol.vt.edu
  524.  
  525. I am confused about operator overloading, C++ and ObjC. I am not a compiler guy so correct me if I am wrong.
  526.  
  527.  
  528. As long as the overloaded operator occured in [object msg: (arg)] construct it would be easy to add operator overloading in a small way in that 'msg' is just a string which gets looked up in a table at run time to decide which function to call (the function name itself doesn't have to be change to some mangled name if one assumes that the declaration for the selector "msg" only takes one type of arg). It shouldn't be that difficult to get rid of the ":" after the method name as long as one assumes that it is a binary message with only one selector and one argument.
  529.  
  530. Such a scheme is not difficult to add to ObjC. 
  531.  
  532. What would be more difficult is to add it such that the example below would work.  Then each selector "msg" has to be mangled such that the msg name and type of arguments were reflected in the final function call and so that not just binary operators could be easily used.
  533.  
  534. This is much more difficult.
  535.  
  536. I take it the discussion is about the second way and not about the first limited way.
  537.  
  538. Is this right?  I have done alot of Smalltalk programming and would like to see the second way but realize that it is quite a stretch for the current compiler.
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545. //----------an example---------------
  546.  
  547. #import <objc/Object.h>
  548. @interface MyClass: Object
  549. {
  550.     int nInt;
  551.     float nFloat;
  552. }
  553.  
  554. - add: (int) a;
  555. - add: (float) a;
  556. - + (int) a;
  557. - + (float) a;
  558. @end
  559.  
  560. @implementation MyClass
  561.  
  562. - add: (int) a
  563. {
  564.     printf("blah int\n");
  565.     return self;
  566. }
  567. - add: (float) a
  568. {
  569.     printf("blah float\n");
  570.     return self;
  571. }
  572. - + (float) a
  573. {
  574.     printf("blah float +\n");
  575.     return self;
  576. }
  577. - + (int) a
  578. {
  579.     printf("blah int +\n");
  580.     return self;
  581. }
  582. @end
  583.  
  584. int main()
  585. {
  586.     id aMyClass;
  587.  
  588.     aMyClass = [[MyClass new] init];
  589.     [aMyClass add: 2];
  590.     [aMyClass add: 3.3];
  591.     [aMyClass + 2];
  592.     [aMyClass + 3.3];
  593.  
  594. }
  595.  
  596. Date: Tue, 29 Sep 1992 11:30:54 EDT
  597. From: gdb0@lehigh.edu (GLENN BLANK)
  598. Subject: Re: Objective-C + C++ -> ObjC++
  599. To: shirley@gothamcity.jsc.nasa.gov (Bill Shirley [CSC])
  600. Cc: gnu-objc@prep.ai.mit.edu
  601.  
  602. >|> COMMUNICATIONS BETWEEN OBJECTIVE-C AND C++
  603. >
  604. >(Knowing Xlib, Xt, and NeXTSTEP)
  605. >I found Interviews obtuse and contrived, even the simplest programs were
  606. >difficult to make run.  Most of the examples they included with the
  607. >release would randomly dump core, with no explanation.  I don't know
  608. >if I was working with an earlier flawwed product or if it has improved.
  609. >
  610. My experience with Interviews echos yours.  It is also difficult to
  611. combine with other libraries.  I would not like to see Interviews
  612. endorsed by association with gcc.  Imitating smalltalk's treatment
  613. of user interface facilties 
  614.  
  615. > Bill Shirley
  616. > shirley@fdr.jsc.nasa.gov
  617. >
  618.  
  619. From: billb@jupiter.fnbc.com (Bill Burcham)
  620. Date: Tue, 29 Sep 92 11:52:27 -0500
  621. To: gnu-objc@prep.ai.mit.edu
  622. Subject: Objective-C + C++ -> ObjC++
  623.  
  624. > Begin forwarded message:
  625. >
  626. > Date: Tue, 29 Sep 92 10:09:20 -0400
  627. > From: Kurt D. Starsinic <kstar@medequity.com>
  628. > To: gnu-objc@prep.ai.mit.edu
  629. > Subject: Re:  Objective-C + C++ -> ObjC++
  630. > Reply-To: kurt@medequity.com
  631. >
  632. > Begin forwarded message:
  633. > From: jjobe@mrj.com (jason jobe)
  634. > Jason queries:
  635. >
  636. > [ stuff deleted ]
  637. >
  638. > > 1)  How should operator overloading be applied to Objc classes?
  639. >
  640. >     IMHO, this is not an extraordinary added value.  I would
  641. > say, just make sure that overloaded operators continue
  642. > to work in a C++ context, but don't support them for
  643. > Objective-C objects.
  644. >
  645.  
  646. (McMahon on) YES, YOU ARE CORRECT SIR! (McMahon off)
  647.  
  648. >
  649. >     Ta-ta,
  650. >     - Kurt
  651. >
  652. Bill Burcham
  653.  
  654. Date: Tue, 29 Sep 92 09:39:36 -0700
  655. From: Imran Qureshi <qureshi@crow.slac.stanford.edu>
  656. Subject: Re: Objective-C + C++ -> ObjC++
  657. To: MKK2@psuvm.psu.edu
  658. Cc: gnu-objc@prep.ai.mit.edu
  659.  
  660. -----
  661. One way to do this is to automate the process.  If one has C++ classes, but
  662. wants to live in an Obj-C world, there should be a filter that reads the
  663. C++ interface and outputs an Obj-C wrapper for it.  Pascal to C exists,
  664. why not C++ to Obj-C and vice versa?  (It's easy for me to suggest this
  665. because I have absolutely no qualifications to actually do it 8-) 8-)
  666. -----
  667.  
  668. I am working on a parser that does ObjC->C++.  The parsing is completed.  Most of the conversion is also done.  I'll put it on the archives soon.
  669.  
  670. Ciao,
  671.  
  672. Imran
  673.  
  674. From: Steve_Naroff@next.com (Steve Naroff)
  675. Date: Tue, 29 Sep 92 11:13:42 -0700
  676. To: jjobe@mrj.com (jason jobe)
  677. Subject: Re: Objective-C + C++ -> ObjC++
  678. Cc: gnu-objc@prep.ai.mit.edu
  679.  
  680.  
  681. If the goal is to improve communication between Objective-C and C++ class libraries, why don't you just use the Objective-C++ compiler developed by NeXT.
  682.  
  683. Objective-C++ accomplishes your stated goal. It enables programmers to use objects developed in both languages within the same source module (without cumbersome "wrappers"). The philosophy is simple, C++ should be as convenient to use from Objective-C as ANSI-C is. This makes it really easy to use C++ libraries from Objective-C, which is an important goal. For example, C++ objects can be "a-part-of" (i.e. reference) Objective-C objects (and vice-versa). However C++ objects can NOT inherit from Objective-C objects (and vice-versa)...I thought this was strange, hard to solve, and not so useful.
  684.  
  685. Since both languages have very different goals (C++ a "better C"...Objective-C a "thin Smalltalk veneer"), there were very few syntactic or semantic ambiguities. Both languages retain their native syntax/semantics and performance characteristics. You could imagine unifying the object models, however we made no attempt to do this. It wasn't clear that "unifying the object models" is what developers wanted.
  686.  
  687. It just struck me that our high level goals are very similar, yet there is much discussion about adding language features that are orthogonal to improved communication between ObjC/C++. For example, adding overloading to Objective-C may be a worthwhile feature, however it has very little to do with improved communication.
  688.  
  689. I am not assuming that NeXT Objective-C++ will solve the group's problems, I just want to understand your goals for the project.
  690.  
  691. If the goals are fuzzy, Objective-C will start approaching the complexity of C++, which I know is bad. Extending C++ also seems like a loosing proposition...isn't the popularity of C++ mostly due to its portability?
  692.  
  693. snaroff.
  694.  
  695. Date: Tue, 29 Sep 92 15:24:00 -0400
  696. From: rms@gnu.ai.mit.edu (Richard Stallman)
  697. To: Steve_Naroff@next.com
  698. Cc: jjobe@mrj.com, gnu-objc@prep.ai.mit.edu
  699. Subject: Objective-C + C++ -> ObjC++
  700.  
  701. It would seem that Objective C++ would allow Objective C programs to
  702. use C++ library classes, by means of C++ constructs.
  703.  
  704. That is useful, but I think what most Objective C programmers want is
  705. to be able to use those library classes by means of Objective C
  706. constructs only.  Does Objective C++ make this possible?
  707.  
  708. Date: Tue, 29 Sep 92 17:55:26 GMT-0800
  709. From: amirdam!sv@ai.mit.edu (Sankar Virdhagriswaran)
  710. To: ai-lab!" jjobe@mrj.com"
  711. Subject: Re: Objective-C + C++ -> ObjC++
  712. Cc: ai-lab!"gnu-objc@prep.ai.mit.edu"
  713.  
  714. <That is useful, but I think what most Objective C programmers want is
  715. to be able to use those library classes by means of Objective C
  716. constructs only.  Does Objective C++ make this possible?>
  717.  
  718. I would like to vote for the other way also.  Use Objective-C library classes from C++ using C++ constructs.
  719.  
  720.  
  721. Date: Wed, 30 Sep 92 01:07:46 -0700
  722. From: Dennis Glatting <seattle-ni-srvr!dglattin@trirex.com>
  723. To: uunet!next.com!Steve_Naroff@uunet.uu.net (Steve Naroff)
  724. Subject: Re: Objective-C + C++ -> ObjC++
  725. Cc: jjobe@mrj.com (jason jobe), gnu-objc@prep.ai.mit.edu
  726.  
  727. > If the goal is to improve communication between
  728. > Objective-C and C++ class libraries, why don't you just
  729. > use the Objective-C++ compiler developed by NeXT.
  730. >
  731.  
  732. I'm doing a lot of work with this now.  There are some problems but they are tool bugs (compiler, gdb, DBKit header file decls, etc).  My c++ objects call ObjC objects, ObjC objects call c++ objects.  It works well. 
  733.  
  734. One problem though is that I can't encapsulate c++ objects in a ObjC class decl.  The c++ objects must be pointers instantiated using 'new' in the ObjC designated initializer.  Complain.  Complain.
  735.  
  736.  
  737. -dpg
  738.  
  739. From: billb@jupiter.fnbc.com (Bill Burcham)
  740. Date: Wed, 30 Sep 92 09:26:59 -0500
  741. To: gnu-objc@prep.ai.mit.edu
  742. Subject: Re: Objective-C + C++ -> ObjC++
  743. Cc: ssircar@canon.com (Subrata Sircar)
  744.  
  745. Subrata Sircar <ssircar@canon.com> writes:
  746. > Kurt D. Starsinic <kstar@medequity.com> writes:
  747. > ! PLEASE! More specifically, _automatic_ object
  748. > ! instantiation, so that I can declare an object at the top
  749. > ! of my method/function and have it automagically freed when
  750. > ! I return from my method/function. I WOULD CALL THIS A HUGE
  751. > ! WIN.
  752. >
  753. > This would be nice - objects as automatic function/method variables.
  754. >
  755.  
  756. NeXT Object class provides allocFromZone:.  I think an allocFromAutomatic would be an elegant approach.  allocFromAutomatic would use alloca() (see MALLOC(3)) to allocate memory from the stack.
  757. ---
  758. +--------------------------------+----------------------------------+
  759. |          Bill Burcham          | "The real world is the place     |
  760. |     Protector of the Realm     |  between your toilet at home and |
  761. | First National Bank of Chicago |  your toilet at work."           |
  762. |    billb@fnbc.com  (NeXTmail)  |                                  |
  763. +--------------------------------+----------------------------------+
  764.  
  765. Date: Wed, 30 Sep 92 11:25:14 -0400
  766. From: athan@object.com (Andrew Athan)
  767. To: gnu-objc@prep.ai.mit.edu
  768. Subject: Re: Automatic object variables (Was: Objective-C + C++ -> ObjC++)
  769.  
  770.  
  771.  
  772. Begin forwarded message:
  773.  
  774. Date: Wed, 30 Sep 92 11:22:53 -0400
  775. From: athan@object.com (Andrew Athan)
  776. To: athan
  777. Subject: Re: Objective-C + C++ -> ObjC++
  778.  
  779. Bill Burcham writes:
  780. >NeXT Object class provides allocFromZone:.  I think an allocFromAutomatic >would be an elegant approach.  allocFromAutomatic would use alloca() (see >MALLOC(3)) to allocate memory from the stack.
  781.  
  782. This would solve the problem only in the case of objects that do not have out-of-line storage associated with them.  E.g.,
  783.  
  784. @interface MyString:Object
  785. {
  786.   char *theBuffer;
  787. }
  788. @end
  789.  
  790. would end up leaving whatever "theBuffer" points to unfreed on function return.
  791.  
  792. The "problem" with automatic object allocation is that it introduces the need for constructor & destructor syntax/semantics.
  793.  
  794. Andrew Athan
  795. Objective Technologies, Inc.
  796.  
  797.  
  798. From: MKK2@psuvm.psu.edu
  799. Date:    Wed, 30 Sep 92 14:35 EDT
  800. Subject: Re: Objective-C + C++ -> ObjC++
  801. To: gnu-objc@prep.ai.mit.edu
  802.  
  803. >That is useful, but I think what most Objective C programmers want is
  804. >to be able to use those library classes by means of Objective C
  805. >constructs only.  Does Objective C++ make this possible?
  806.  
  807. Not by magic.  Basically, there are so few syntax clashes between C++
  808. and Objective-C that the OC user can just include C++ when appropriate.
  809.  
  810. To disguise C++ as Objective-C, a wrapper can be used.  Just create
  811. an Objective-C class that has one instance variable, an instance of the
  812. C++ class.  Then add an OC method for each of the C++ methods that you
  813. want to appear in the interface (or perhaps internally).  Those methods just
  814. call the appropriate C++ method.
  815.  
  816. Note that this approach allows later subclassing og the OC class.
  817.  
  818. Disclaimer:  I've thought about this, but I've never actually done it.
  819. I could be missing a big gotcha here.  Naroff?  What do you say?
  820.  
  821. This version of "using a wrapper" is something I'd like to see
  822. automated.  Perhaps a filter could read C++ the Foo.h file for class Foo
  823. in C++, and spit out a Foo.[hm] in Obj-C that offers access to C++
  824. classes as if they were Obj-C classes.  Of course, a filter that goes the
  825. other way would be great for C++ programmers, but this is the GNU Objective-C
  826. project now, isn't it.  8-)
  827.  
  828. I am not a compiler-knowlegeable person, so I have no idea of the ins and
  829. outs of integrating Obj-C and C++ transparently.  This wrapper solution
  830. appeals to the old Unix spirit of solving 70% of the problem with 20%
  831. of the work, adding another little tool to the tollkit, and getting back
  832. to work.
  833.  
  834. Lastly, I want to make an editorial comment:  In my opinion, this group
  835. should steer away from inventing a new language, at least for now.  Let's
  836. get a working Objective-C out the door, with enough tools and class
  837. libraries that people will be inclined to use it.
  838.  
  839. Lee Sailer
  840. GNU Objective-C Class Library Map Manager
  841.  
  842. Date: Wed, 30 Sep 92 09:28:38 -0700
  843. From: Dennis Glatting <seattle-ni-srvr!dglattin@trirex.com>
  844. To: uunet!gothamcity.jsc.nasa.gov!shirley@uunet.uu.net (Bill Shirley [CSC])
  845. Subject: Objective-C + C++ -> ObjC++
  846. Cc: gnu-objc@prep.ai.mit.edu
  847.  
  848. > |> 4)  Routing C++ method calls through an Objc-like
  849. > dispatcher WHEN DESIRED. 
  850.  
  851.  
  852.  
  853. > Sounds good to me.  How would you denote when to dispatch or not.
  854.  
  855.  
  856. If you chose to not go thru the dispatcher then how are you going to  
  857. handle posing and inheritance?  Perhaps my question should be:  What  
  858. does WHEN DESIRED mean?  Perhaps an example would be useful.
  859.  
  860. -dpg
  861.  
  862.  
  863. Date: Thu, 1 Oct 92 23:18:21 EDT
  864. From: jjobe@mrj.com (jason jobe)
  865. To: gnu-objc@prep.ai.mit.edu
  866. Subject: ObjC++ direction
  867.  
  868. Although not directly related our objectives I would also like to ask/propose
  869. the following:  How about providing some scoping syntax (maybe a precompiler
  870. hack) to help resolve name space problems with regard to Class names.
  871. InterViews used macros with some automated preporcessing to prepend every
  872. class name with "iv". This works ok but I think some standard mechanism 
  873. should be provided. How should I specify which "List" implementation I want
  874. to use from which library?
  875.  
  876. And now to business.
  877. I appreciate all the input for ObjC++. While this effort will hopefully
  878. lead to new and interesting language features we need to pick a few
  879. objectives to focus on initially. Also, lets get something out the door
  880. that works and optimize later.
  881. Here's the gist:
  882.  
  883. 1) The primary focus is on the ObjC programmer.
  884.  
  885. 2) Minimize linguistic changes.
  886.  
  887. 3) Some sort ObjC class should "wrap" around a C++ one. This process
  888.    should be maximaly automated.
  889.  
  890. 4) Some runtime information about desired C++ classes should be provided.
  891.    Something needs to be provided for dynamic method dispatching.
  892.    This seems useful and desired by many respondents.
  893.  
  894. 5) Forget (for now) such desirables as overloading anything in ObjC.
  895.    Although I think C++ should recognize "id" and ObjC class pointers so
  896.    C++ operator overloading could be applied to ObjC objects. NOTE: If this 
  897.    becomes to complicated then skip it.
  898.    Example:
  899.      int operator+ (id objcObject, int x)  {
  900.        int y = [objcObject integerValue];
  901.        return (x + y);
  902.      }
  903.    This may be a non-issue. I have yet to try it.
  904.  
  905.  
  906. Problems seem to revolve around the appropriate control over
  907. construction/destruction and initialization of C++ objects.
  908.  
  909. Questions: 
  910.  
  911. 1) Should a central dispatcher be provided for calling C++ methods
  912. or should we go for simple inline wrappers that make the C++ object 
  913. "look" like an ObjcC one?
  914.  
  915. 2) Should there be a real ObjC class which stands in for its C++
  916. counterpart? (I think so. Perhaps a new base class ObjectPlus.)
  917.  
  918. These excerpts sum it it well.
  919.  
  920. (Richard Stallman):
  921. Using Objective C objects from C++ is a completely different problem.
  922. I suggest separating the two problems.  The more important one is
  923. using C++ objects from Objective C...
  924.  
  925. (Richard Stallman):
  926. I like the idea of a tool to write a program that gets added to the
  927. application to enable it to use a particular C++ class.
  928.  
  929. (Steve Naroff)
  930. An interesting project from my perspective is "Dynamic C++", which is
  931. merely C++ with a rich runtime model (like Objective-C). This would
  932. add very little syntax to C++. It means adding the notion of a
  933. dynamic type to C++ (like "id", which is a "void *" for objects).
  934. Sending messages to an object of anonymous type would have the same
  935. semantics as Objective-C.
  936.  
  937. ObjC++ compiler hackers wanted. Lots of fun but no money.
  938. Call Jason for a good time (jjobe@mrj.com)
  939.  
  940. Regards,
  941. Jason
  942.  
  943.  
  944. From: MKK2@psuvm.psu.edu
  945. Date:    Fri, 2 Oct 92 17:10 EDT
  946. Subject: Re: ObjC++ direction
  947. To: gnu-objc@prep.ai.mit.edu
  948.  
  949. >Here's the gist:
  950.  
  951. >1) The primary focus is on the ObjC programmer.
  952.  
  953. Yes, but I'd say the primary focus is on making GNU ObjC as usable as GNU
  954. c++.
  955.  
  956. >2) Minimize linguistic changes.
  957.  
  958. Agreed.  A sure way to go astray is to invent a new language without
  959. meaning to. 8-)
  960.  
  961. >3) Some sort ObjC class should "wrap" around a C++ one. This process
  962. >   should be maximaly automated.
  963.  
  964. Yes.  The Map Team is going to look at doing this by hand for a while, so
  965. we'll be able to recommend what needs to be automated.  I might add that,
  966. as soon as useful ObjC classes appear which are of use to C++ programmers,
  967. then C++ wrappers for the ObjC classes will be needed.  As efficiency
  968. issues become important, wrappers can be transparently replaced by native
  969. implementations.
  970.  
  971.  
  972. >4) Some runtime information about desired C++ classes should be provided.
  973. >   Something needs to be provided for dynamic method dispatching.
  974. >   This seems useful and desired by many respondents.
  975.  
  976. Maybe, but only so long as it doesn't add features that aren't available
  977. from other good C++ compilers.  That is, we don't want to redefine either
  978. language.
  979.  
  980. >5) Forget (for now) such desirables as overloading anything in ObjC.
  981. >   Although I think C++ should recognize "id" and ObjC class pointers so
  982. >   C++ operator overloading could be applied to ObjC objects. NOTE: If this
  983. >   becomes to complicated then skip it.
  984. >   Example:
  985. >     int operator+ (id objcObject, int x)  {
  986. >       int y = [objcObject integerValue];
  987. >       return (x + y);
  988. >     }
  989. >   This may be a non-issue. I have yet to try it.
  990.  
  991.   This is a language change.  I'm not against new languages--far
  992. from it--and I think there are folks here who are qualified to design
  993. (ObjC++)++, but as you said at the top, first things first.
  994.  
  995.  
  996.  
  997. From: martin@charon.neuroinformatik.ruhr-uni-bochum.de (martin)
  998. Date: Sat, 3 Oct 92 18:19:41 +0100
  999. To: Geoffrey S. Knauth <gsk@marble.com>
  1000. Subject: Re: One way to compile GCC-2.2.2 under NeXTSTEP 3.0.
  1001.  
  1002. Hi,
  1003.  
  1004. maybe I can cut down some of my code, let me try. Otherwise it is pretty large.
  1005. I have about 20k in the interfacing module between several hundred kB C++
  1006. code and a Nextstep interface. I will come back to you if I have example code.
  1007.  
  1008. Just mixing line by line and sending C++ objects by pointers as arguments to
  1009. Objective-C is a wonderful feature, as long as it works.
  1010.  
  1011. Martin
  1012.  
  1013. Date: Fri, 2 Oct 92 20:26:41 EDT
  1014. From: jjobe@mrj.com (jason jobe)
  1015. To: MKK2@psuvm.psu.edu
  1016. Cc: gnu-objc@prep.ai.mit.edu
  1017. Subject: ObjC++ direction
  1018.  
  1019. >   Example:
  1020. >     int operator+ (id objcObject, int x)  {
  1021. >       int y = [objcObject integerValue];
  1022. >       return (x + y);
  1023. >     }
  1024. >   This may be a non-issue. I have yet to try it.
  1025.  
  1026. >  This is a language change.  I'm not against new languages--far
  1027. > from it--and I think there are folks here who are qualified to design
  1028. > (ObjC++)++, but as you said at the top, first things first.
  1029.  
  1030. In trying the above example I got
  1031.   "operator has no user-defined argument type"
  1032.  
  1033. Is it really a language change? It seems to me that "id" should be like
  1034. any other programmer defined type. If so then the example should be 
  1035. both acceptable and proper. Then we could reasonable things by passing
  1036. around ids to C++ methods and such.  In fact, why doesn't this just work?
  1037.  
  1038. Testing continues.
  1039. Jason
  1040.  
  1041.  
  1042.  
  1043. From: ssircar@canon.com (Subrata Sircar)
  1044. Date: Tue, 29 Sep 92 18:02:44 PDT
  1045. To: ObjC@canon.com
  1046. Subject: Re: Objective-C + C++ -> ObjC++
  1047.  
  1048. jjobe@mrj.com (jason jobe) writes:
  1049. >1 ) We want to make it easy to equate Objc and C++ class 
  1050.  
  1051. >structures. 
  1052.  
  1053.  
  1054. This alone would be a tremendous advantage.  I'd really like not to care about  
  1055. whether a class was one or the other until I needed a C++ advantage like  
  1056. multiple-inheiritance.
  1057.  
  1058. >3) Perhaps one should encourage consistent message syntax. 
  1059.  
  1060. >Can/should "[graphic draw]" be equivalent to 
  1061.  
  1062. >"graphic->draw()" ? If so, what about "[canvas 
  1063.  
  1064. >draw:graphic at:point]" vs. "canvas->drawAt (graphic, 
  1065.  
  1066. >point)" 
  1067.  
  1068.  
  1069. If this is done, shouldn't it work both ways?  i.e. no matter what type an  
  1070. object is, [graphic draw] and graphic->draw() should be the same thing.
  1071.  
  1072. One area where I don't support symmetry is in overloading: I don't want to see  
  1073. overloading of Objective-C methods, yet, because I don't think it adds that  
  1074. much.
  1075.  
  1076. >2) Are we going to add the static object instantiation 
  1077.  
  1078. >that NeXT left out? 
  1079.  
  1080.  
  1081. Could you elaborate?  What is lacking in the ...allocFromZone] init] type  
  1082. scheme?
  1083.  
  1084. Kurt D. Starsinic <kstar@medequity.com> writes:
  1085. ! PLEASE! More specifically, _automatic_ object 
  1086.  
  1087. ! instantiation, so that I can declare an object at the top 
  1088.  
  1089. ! of my method/function and have it automagically freed when 
  1090.  
  1091. ! I return from my method/function. I WOULD CALL THIS A HUGE 
  1092.  
  1093. ! WIN. 
  1094.  
  1095.  
  1096. This would be nice - objects as automatic function/method variables.
  1097.  
  1098. rms@gnu.ai.mit.edu (Richard Stallman) writes:
  1099. * [...ellipis by sks ...] I think what most Objective C 
  1100.  
  1101. * programmers want is to be able to use those library 
  1102.  
  1103. * classes by means of Objective C constructs only. Does 
  1104.  
  1105. * Objective C++ make this possible? 
  1106.  
  1107.  
  1108. This is what I want - I don't know about the rest of you :<)
  1109.     
  1110. ---
  1111. Subrata Sircar|ssircar@canon.com (NextMail ok)|Prophet & SPAMIT Charter Member
  1112. Canon Information Systems and I do not share the same views on everything.
  1113. "All I have to do is write a thesis, but how hard could that be?" - Jordan
  1114. "I seem to suffer from irrelevant flashbacks." - Paul, PAUL THE SAMURAI #1
  1115.  
  1116.  
  1117.